<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

</body>
<script>
    "use strict"
    // var person = {
    //     name : "星",
    //     age:18,
    //     score :100,
    //     handsome : function(){
    //         this.score++
    //         console.log("i am handsome")
    //     },
    //     habby: function(){
    //         this.score++
    //         console.log("i am good")
    //     }
    // }
    // delete person.handsome
    // console.log(person.handsome)
    // delete person.age
    // console.log(person.age)
    // console.log(person)

    // function Car(){
    //     this.name="BMW";
    //     this.price = 99999;
    //     this.oil = 100;
    //     this.run = function(){
    //         this.oil--;
    //         console.log(this.oil)
    //     }
    // }
    // var mycar = new Car()
    // mycar.run()
    // console.log(mycar.oil)
    // function Car(){
    //     console.log("car")
    // }
    // console.log(new Car())
    // function person(name,length){
    //     this.name = name;
    //     this.length = length;
    //     return 123
    // }
    // console.log(new person("星",180))
//     var num = new Number(123)
//     num.abc = "def"
//     console.log(num)
//     num*=2
// console.log(num)
    // var str = "abc"
    // console.log(str.length)
    // var num = 4;
    // num.len = 3
    // console.log(num.len)
    // var arr = [1,2,3,4,5]
    // arr.length = 2;
    // console.log(arr)
    // var str = "abc"
    // str.length = 1;
    // console.log(str)
    // Car.prototype.brand = "BMW";
    // Car.prototype.price = 999999;
    // Car.prototype.oil = 100;
    // function Car(owner,color){
    //     this.owner = owner;
    //     this.color = color;
    // }
    // var mycar = new Car("星","黑色")
    // console.log(mycar)

    // mycar.brand = "奔驰"
    // console.log(mycar)
    // Person.prototype.name = "星"
    // function Person(){
    //     // this.name = "星"
    // }
    // // Car.prototype = {
    // //     constructor : Person
    // // }
    // function Car(){
    //     // this.name = "BMW"
    // }
    // var mycar = new Car()
    // var person = new Person()
    // console.log(mycar)
    // console.log(mycar.prototype)
    // console.log(mycar.__proto__)
    
    // function Person(){

    // }
    // console.log(Person.prototype.constructor)

    // Person.prototype.name = "abc"
    // function Person(){

    // }
    // var obj = {
    //     name:"kun"
    // }
    // var person = new Person()
    // console.log(person.name)
    // person.__proto__ = obj
    // console.log(person.name)
    // Person.prototype.name = "abc"
    // function Person(){

    // }
    // var person = new Person()
    // Person.prototype = {
    //     name : "kun"
    // }
    // console.log(person.name)
    
    // var obj = {name : "abc"}
    // var obj1 = obj;
    // obj = {name : "kun"}
    // Person.prototype.breath = "呼吸"
    // function Person(){

    // }
    // var person = new Person()

    // Baby.prototype = person
    // function Baby(){
    //     this.speck = "会发出声音"
    // }
    // var baby = new Baby()

    // OneYear.prototype = baby
    // function OneYear(){
    //     this.walk = "走路"
    // }
    // var oneYear = new OneYear()
    // console.log(oneYear.walk)
    // console.log(oneYear.speck)
    // console.log(oneYear.breath)

    // function Fater(){
    //     this.cards = {
    //         card1 : 99999
    //     }
    //     this.num = 100
    // }
    // var fater = new Fater()

    // Son.prototype = fater
    // function Son(){
    //     this.count = function(){
    //         this.num++
    //     }
    // }
    // var son = new Son()
    // son.count()
    // console.log(son)
    // console.log(son.num)
    // console.log(fater.num)

    // var obj = Object.create(null)
    // console.log(obj)
    // obj.__proto__ = {
    //     name:"坤"
    // }
    // console.log(obj.kun)

    // Fater.prototype.name = "kun"
    // function Fater(){
    //     this.card = 99999
    // }

    // var person1 = new Fater()

    // Son.prototype = person1
    // function Son(){
    //     this.cars = 3
    // }
    // var person2 = new Son()

    // xiaoji.prototype = person2
    // function xiaoji(){
    //     this.house = 300
    // }
    // var person3 = new xiaoji()
    // console.log(person3)

    // var name = "kun"
    // function fn(){
    //     var name = "ikun"
    //     console.log(this.name)
    //     console.log("this指向的是：",this)
    // }

    // fn()

    // var name = "kun"
    // var obj = {
    //     name : "ikun",
    //     fn: function(){
    //         console.log(this.name)
    //     }
    // }
    
    // var test = obj.fn
    // test()
    // var name = "kun"
    // var obj = {
    //     name : 'ikun'
    // }
    // function Person(){
    //     console.log(this.name)
    // }
    
    // Person.call(obj)


    // var obj = {
    //     name : 'ikun'
    // }

    // var obj1 = {
    //     name :'kun',
    //     fn :function(){
    //         console.log(this.name)
    //     }
    // }
    
    // obj1.fn.call(obj)


    // function Person(name,age){
    //     //this = obj
    //     this.name = name;
    //     this.age = age;
    // }

    // var obj = {}

    // var person = new Person('Kun',18)
    // Person.call(obj,'坤',20)
    // console.log(obj,person)

    
    // function Person(name,age,sex){
    //     this.name = name;
    //     this.age = age;
    //     this.sex = sex;
    // }

    // function Student(name,age,sex,major,grade){
    //     //构造函数的隐式this声明
    //     //var this = {}
    //     Person.call(this,name,age,sex)
    //     this.major = major;
    //     this.grade = grade;
    // }
    
    // var stu1 = new Student('小王',18,'男','计算机',2024)
    // console.log(stu1)

// function Parent(name) {
//   this.name = name;
//   this.colors = ['red', 'blue', 'green'];
// }

// Parent.prototype.sayName = function() {//父类原型上添加方法
//   console.log(this.name);
// };

// function Child(name, age) {
//   Parent.call(this, name); // 继承属性
//   this.age = age;
// }


// //创建一个中转站
// function F(){}
// F.prototype = Parent.prototype

// // 继承中转站的方法
// Child.prototype = new F()

// //Child其实是继承自F，为了完美可以
// Child.prototype.constructor = Child
// //再记录一下，真正继承的prototype
// Child.prototype.uber = Parent.prototype


// var child = new Child("小王",18)
// var parent = new Parent("老王")
// child.sayName()

// Child.prototype.sex = '男' // 这里的prototype是new F()出来的对象
// console.log(child.sex)
// console.log(parent.sex)


// function fn1(){
//     var num1 = 100;
//     function fn2(){
//         this.mynum = function(){
//             console.log(num1)
//         };
//         this.numplus = function(){
//             num1++
//         }

//     }
//     return new fn2()
// }
// var t = fn1()



// var init = (function(){
//     var num = 100;
//     function numplus(){
//         num++
//         console.log(num)
//     }
//     return function(){
//         numplus();
//     }
// }())
// init()

// var person = {
//     sleep : function(){
//         console.log('i am sleeping')
//         return this
//     },
//     work : function(){
//         console.log('i am working')
//         return this
//     },
//     eat : function(){
//         console.log('i am eating')
//         return this
//     }
// }
// person.sleep().sleep().work().eat()

// let obj = {
//     name:"坤",
//     age:20
// }
// Object.getOwnPropertyDescriptor(obj,"name")



// var person = {
//     name:'坤',
//     age:18,
//     sex:'meal',
//     heigh:180,
//     weight:60
// }

// for(var i in person){
//     console.log(person[i])
// }

// Person.prototype = {
//     money:99999
// }
// function Person(name,age){
//     this.name = name;
//     this.age = age;
// }
// var person = new Person('kun',18)

// console.log('name' in person)
// console.log('money' in person)
// console.log('height' in person)


// var a = [1,2,3]
// var b = {
//     name : '坤坤'
// }
// console.log(a instanceof Array)
// console.log(a instanceof Object)

// console.log(b instanceof Object)
// console.log(b instanceof Array)


// if(a = 1){
//     console.log(a)

// }

// console.log(a)


// var ajax = new XMLHttpRequest();
// ajax.open('post','https://juejin.cn/web/user/update/user_info/',true);
// ajax.setRequestHeader('content-type','application/x-www-form-urlencoded');
// ajax.send("aid=2608&avatar=https://p9-juejin-sign.byteimg.com/tos-cn-i-k3u1fbpfcp/78dd78b322e243c783b4863fd2bae095~tplv-k3u1fbpfcp-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NDgyNzM2MTY5NDgw:q75.awebp?rk3s=436ef1ef&x-expires=1731809643&x-signature=D4ioZPhkm2KhgR9ET0cUPxwEt54%3D");
// ajax.onreadystatechange = function (){
//     if(ajax.readyState==4&&ajax.status==200){
//         var c = ajax.responseText;
//         console.log(c)
//     }
// }


// https://p9-juejin-sign.byteimg.com/tos-cn-i-k3u1fbpfcp/78dd78b322e243c783b4863fd2bae095~tplv-k3u1fbpfcp-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NDgyNzM2MTY5NDgw:q75.awebp?rk3s=436ef1ef&x-expires=1731809643&x-signature=D4ioZPhkm2KhgR9ET0cUPxwEt54%3D




// https://p9-juejin-sign.byteimg.com/tos-cn-i-k3u1fbpfcp/78dd78b322e243c783b4863fd2bae095~tplv-k3u1fbpfcp-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NDgyNzM2MTY5NDgw:q75.awebp?rk3s=436ef1ef


// function fn(){
//     console.log(arguments.callee)
// }
// fn()


// var num = (function(n){
//     if(n==1){
//         return 1
//     }
//     return n*arguments.callee(n-1)
// }(5))
// console.log(num)


// function fn1(){
//     fn2()
// }

// function fn2(){
//     console.log(fn2.caller)
// }
// fn1()

// var obj1 = {
//     name:"kun",
//     age:18,
//     cards:{
//         c1:100,
//         c2:200
//     },
//     arr:[1,23]
// }

// function clone(orign,target){
//     var target = target || {}   //兜底判断是否传入目标数组
//     for(var key in orign){      //循环对象
//         if(orign.hasOwnProperty(key)){   //判断是否是对象本身的属性
//             if(typeof(orign[key]) == 'object'){ //判断是不是对象
//                 if(orign[key] instanceof Array){//判断是不是数组
//                 target[key] = clone(orign[key],[])
//                 }else{
//                     target[key] = clone(orign[key])
//                 }
//             }else{
//                 target[key] = orign[key]
//             }
//         }
        
//     }
//     return target
// }
// var obj2 = {}
// clone(obj1,obj2)
// console.log(obj2)
// var arr = [3,5,3,7,5,1,8,9,6,2]
// arr.sort((a,b)=>{
//     if(a>b){
//         return 1
//     }else if(a<b){
//         return -1
//     }else{
//         return 0
//     }
// })
// arr.sort((a,b)=>a-b)
// console.log(arr)



// var arr = [3,5,3,7,5,1,8,9,6,2]
// Array.prototype.unique = function(){
//     var temp = {}
//     var arr = []
//     var len = this.length
//     for(var i = 0;i<len;i++){
//         if(!temp[this[i]]){
//             temp[this[i]] = 1
//             arr.push(this[i])
//         }
//     }
//     return arr
// }


// function Person(name,sex){
//     this.name = name;
//     this.sex = sex;
// }

// function Student(name,sex,major){
//     Person.call(this,name,sex)
//     this.major = major
// }

// var stu = new Student('x','男','计算机')
// console.log(stu)


// var str = new String("abbcccddddeeeeef112223")

// String.prototype.unique = function(){
//     var len = this.length
//     var obj = {}
//     var arr = []
//     for(var i = 0;i<len;i++){
//         if(!obj[this[i]]){
//             obj[this[i]] = 1
//         }else{
//             obj[this[i]]++
//         }
//     }
//     // console.log(obj)
//     for(var key in obj){
//         arr.push(key)
//     }
//     // console.log(arr)
//     return arr.join("")
// }




// try {
//     console.log(1)
//     console.log(2)
//     console.log(aaa)

// } catch (error) {
//     console.log(error)
//     console.log(error.name)
//     console.log(error.message)
// }




// function fn1(){
//     console.log(this)
// }

// new fn1()


// var str1 = '123'
// var num2 = 123
// var num3 = -321

// console.log(+str1,typeof +str1)
// console.log(+num2,typeof +num2)
// console.log(+num3,typeof +num3)
// console.log(-num2,typeof -num2)



class Animal{
    constructor(type,skin){
        this.type = type;
        this.skin = skin;
    }
    print(){
        
    }
}

var dog = new Animal("犬科","黄色")
console.log(dog)




</script>
</html>